// 手动注册通用组件
// import svgIcon from './svg-icon/index.vue'
// import popup from './popup/index.vue'
// const components = {
//   'svg-icon': svgIcon,
//   'popup': popup
// }

import { defineAsyncComponent } from "vue"
export { confirm } from './confirm/index' // export { xxx } from 'xxxx' 导入并导出的写法
export { message } from './message/index'

export default {
  install(app) {
    // 手动注册通用组件
    // app.component('m-svg-icon', svgIcon),
    // app.component('m-popup', popup)
    // Object.keys(components).forEach(componentName => {
    //   app.component(`m-${componentName}`, components[componentName])
    // })

    // vite 提供的glob方法，通用组件自动化注册
    // 1、获取当前路径下所有文件夹中的 index.vue
    const components = import.meta.glob('./*/index.vue')
    // 2、遍历获取到的组件模块
    for (const [fullPath, fn] of Object.entries(components)) {
      const componentName = 'm-' + fullPath.replace('./', '').split('/')[0]
      // 利用 app.component 进行注册
      app.component(componentName, defineAsyncComponent(fn))
    }
  }
}
